#ifndef SIMPLEIMAGELUABINDINGS_H
#define SIMPLEIMAGELUABINDINGS_H

#include "lua.hpp"
#include "../core/ObjectFactory.h"

int donothingspecial_simpimg();

class SimpleImageLuaBindings : public DataTypeBase
{
public:
static int li_allocateLayered(lua_State* L);
static int li_allocateInterleaved(lua_State* L);
static int li_deallocate(lua_State* L);
static int li_untether(lua_State* L);
static int li_clone(lua_State* L);
static int li_rawGet(lua_State* L);
static int li_get(lua_State* L);
static int li_rawSet(lua_State* L);
static int li_set(lua_State* L);
static int li_rawPos(lua_State* L);
static int li_deleteThis(lua_State* L);
static int li_sizeX(lua_State* L);
static int li_sizeY(lua_State* L);
static int li_sizeC(lua_State* L);
static int li_size(lua_State* L);
static int li_getmx(lua_State* L);
static int li_getmy(lua_State* L);
static int li_getmc(lua_State* L);
static int li_getb(lua_State* L);
static int li_fromString(lua_State* L);
static int li_toString(lua_State* L);
static int li_deepCopy(lua_State* L);

static int li_getBounds(lua_State* L);

static void pushStaticFuncs(lua_State* L);
void registerFunctions(lua_State* L);
};

#endif